﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Collections;
using System.Transactions;

#region Percurso_realizar
namespace Distrackting.DataLayer
{
    public partial class Percurso_realizar
    {
        public void setPercurso_realizar(Percurso_realizar pr)
        {
            this.cod_percurso = pr.cod_percurso;
            this.cod_utilizador = pr.cod_utilizador;
        }
    }
}
#endregion

#region dataPercurso_realizar
namespace Distrackting.DataLayer
{
    public class dataPercurso_realizar
    {
        #region Methods
        public static void createPercurso_realizar(Percurso_realizar pr)
        {
            try
            {
                dbDataDataContext dbData = new dbDataDataContext();
                dbData.Percurso_realizars.InsertOnSubmit(pr);
                dbData.SubmitChanges();
            }
            catch (Exception e)
            {
                throw e;

            }
        }

        public static Percurso_realizar getPercurso_realizar(Guid cod_utilizador, Guid cod_percurso)
        {
            try
            {
                if (cod_utilizador == null || cod_percurso == null)
                    return null;
                dbDataDataContext dbData = new dbDataDataContext();
                Percurso_realizar pr = (from perc in dbData.Percurso_realizars
                                  where (perc.cod_utilizador == cod_utilizador) && (perc.cod_percurso == cod_percurso)
                                  select perc).FirstOrDefault();
                return pr;
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static IQueryable<Percurso_realizar> getPercurso_realizars()
        {
            try
            {
                dbDataDataContext dbData = new dbDataDataContext();
                return dbData.Percurso_realizars;
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static IQueryable<Percurso_realizar> getPercurso_realizars(Expression<Func<Percurso_realizar, bool>> whereClause)
        {
            try
            {
                dbDataDataContext dbData = new dbDataDataContext();
                return dbData.Percurso_realizars.Where(whereClause);
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static Boolean deletePercurso_realizar(Percurso_realizar pr)
        {
            try
            {
                dbDataDataContext dbData = new dbDataDataContext();
                if (dbData.Percurso_realizars.Contains(pr))
                {
                    Percurso_realizar res = (from perc in dbData.Percurso_realizars
                                      where (perc.cod_utilizador == pr.cod_utilizador) && (perc.cod_percurso == pr.cod_percurso)
                                      select perc).FirstOrDefault();
                    if (res == null)
                        return false;
                    else
                    {
                        dbData.Percurso_realizars.DeleteOnSubmit(pr);
                        dbData.SubmitChanges();
                        return true;
                    }
                }
                else return false;
            }
            catch (Exception e)
            {
                throw e;
            }
        }


        #endregion
    }
}
#endregion